package com.fanfutian.eventproject.annotation;

import com.fanfutian.eventproject.validation.StateValidation;
import jakarta.validation.Constraint;
import jakarta.validation.Payload;

import java.lang.annotation.*;


/**
 * @author fanfutian
 * 自定义参数校验注解
 */
@Documented     // 元注解，可以注解到使用文档中
// 指定提供校验规则的类
@Constraint(validatedBy = {StateValidation.class})
// 注解所修饰的对象范围， 可用在字段上
@Target({ElementType.FIELD})
// 注解在哪个阶段生效
@Retention(RetentionPolicy.RUNTIME)
public @interface State {

    // 提示信息，提供校验失败的默认提示
    String message() default "State的值只能是‘已发布’或‘草稿’";

    // 分组
    Class<?>[] groups() default {};

    // 负载，获取到注解的附加信息
    Class<? extends Payload>[] payload() default {};

}
